package main

import "fmt"

type Names []string
type Second int
type Pointer *int
type Shower interface {
	Show()
}

func (n Names) hello() {
	fmt.Printf("hello, all names are %v\n", n)
}

func (s Second) hello() {
	fmt.Printf("hello, the second is %d\n", s)
}

func (s Shower) hello() {
	fmt.Printf("hello, I'm interfece%v\n", s)
}

/*
func (p Pointer) hello() {
	fmt.Printf("hello, I'm pointer %v\n", p)
}
*/

/*
func (s struct{ Name string }) hello() {
	fmt.Printf("hello, I am struct %v\n", s)
}
*/

func main() {
	x := Names{"allen", "luffy"}
	x.hello()

	y := Second(5)
	y.hello()

	/*
		z := struct{ Name string }{"allen"}
		z.hello()
	*/
}
